package com.example.requestmapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2024-02-28
 * Time: 13:22
 */

@Controller
@RequestMapping("/user")
public class UserController {

    // 每个路径都有对应的 handler -> handlerMapping 指定访问的地址

    /**
     *
     * 1. @WebServlet("/必须使用 / 开头")，@RequestMapping("/user/login")，“user/login”都可以
     * 2. 支持模糊匹配 *，/user/* -> /user/a./user/b 单层
     *                 /user/** -> /user/a,/user/a/b,/user/a/b/c 多层
     *    支持多匹配 value = {"/user/login", "/user/login2"}
     * 3. 内部包含 @Target({ElementType.TYPE, ElementType.METHOD})
     *    支持类 ElementType.TYPE，提取通用的访问地址
     *    支持方法 ElementType.METHOD，提取方法自己的访问地址
     *    类可以没有，方法必须有
     * 4. 请求方式，默认全部都可以 GET, POST, PUT, DELETE
     *    指定方式，method = RequestMethod.GET，也可以多匹配
     *    等价于 GETMapping，POSTMapper等等，但是只等使用在方法上
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/login", method = RequestMethod.GET) // 作用：注册地址，将 handler 注册到 handlerMapping
    public String login() {
        return "login";
    }
}
